Today, vast information is easily utilized in the form of data, but there are still various challenges to be addressed in order to detect and utilize pertinent information. In particular, basic technologies commonly used in information detection such as image recognition, speech recognition, OCR character recognition, full-text search, biometrics authentication with fingerprints and the like, are pattern recognition techniques for detecting or analyzing matching and/or similar information (patterns) among subject information; there techniques have become essential to advanced information processing, and are used in broad applications ranging from, for example, social infrastructure equipment, industrial equipment, factory equipment, digital cameras and home appliances to the latest robots and artificial intelligence.
With this kind of method, the tap remains screwed into the sleeve, so the sleeve must be removed from the tap. However, for example, in the case of grasping the sleeve with a tool such as a pair of pliers and removing the sleeve from the tap by turning the tap, there is a problem in that because the sleeve is extremely thin, there is a possibility that the sleeve may be damaged.
The largest technical challenge of information detection such as pattern recognition is to reduce the number of comparison combinations (the number of searches) while comparing the information. To this end, attempts have been made, for example, to find an optimal algorithm for the subject information in order to reduce the number of comparison combinations (the number of searches), or to utilize a fast computation machine such as a supercomputer in order to find the answer depending on the information contents in question, and in some cases, the detection accuracy was sacrificed.
The present invention relates to Japanese Patent Application No. 2010-33376, entitled “Method of Commonly Managing Information in Information Processing Devices, Method of Detecting Information, Content-Addressable Memory for Performing Global Parallel Comparisons of Data-Address Relative Relationships, and Information Processing Device Comprising a Function to Commonly Manage Information, Software Program and Content-Addressable Memory for Performing Global Parallel Comparisons of Data-Address Relative Relationships” by the present inventor filed by the present applicant on Feb. 18, 2010, which invention provides a memory capable of, and methods of addressing the longstanding challenge of assuring the accuracy of information detection in pattern recognition and information detection technologies as above, while minimizing the number of comparison combinations (the number of searches, the search time). The present application claims a priority of the above patent application.
Japanese Patent Application No. 2010-47215, entitled “Semiconductor Integrated Circuit Provided with Information Refinement Detection Function, and Method of and Device Using said Semiconductor Integrated Circuit” by the present inventor filed by the present applicant on Mar. 4, 2010, regarded the above Japanese Patent Application No. 2010-33376 as an independent invention, changed the expression of the invention name as in “semiconductor integrated circuit provided with information refinement detection function,” and disclosed the concept of dual parallel logic operations on match/mismatch determination results, which is the most important feature of the present invention. Also in this patent application, the range of detected information was extended from two-dimensional images to one- or multi-dimensional information. The present application claims a priority of entirety of the above patent application.
The present application has integrated the above two prior patent applications; added mainly to the Application No. 2010-47215, means for reducing the number of information refinement circuits, means for multiplexing the dual parallel logic operations and a method of using the memory, for example, as applied to artificial intelligence; added more descriptions; and changed some expressions.
As described above, there are a wide range of information detection technologies such as pattern recognition and pattern matching; therefore, numerous inventions exist for reducing the search time. However, there is no example of technique or memory found to essentially avoid sequential processing on individual memories, which is destined to happen in the von Neumann-architecture computers, in order to reduce the search time.
For reference, JP-A-H 7-114577, entitled “Data Searching Device, Data Compression Device and Method Using the Same” shows techniques of repetitively searching for information by comparing adjacent data items, whereas the invention of the present application discloses techniques of not only comparing adjacent data items, but also, in all memories, comparing data contents of the data and location relationships between the data addresses in a dual parallel manner.
Next, a memory provided with an information refinement detection function is disclosed in Japanese Patent Application No. 2010-65597, filed by the same applicant and inventor as that of the present application, and this memory allows information search of non-von Neumann architecture since it does not require sequential address processing of the von Neumann architecture, and performs the information refinement by itself in order to search for the information in question.
However, this memory cannot be used in some cases and also information still needs to be searched faster than in conventional information search methods in some other cases. In view of the foregoing technical background, the present application enables an efficient and fast information search using a memory, such as a typical content-addressable memory, capable of comparing data in parallel and outputting addresses as the results.
Although no prior patent application is found to disclose one of the features of the present invention, the parallel comparison of data addresses detected by comparing data in parallel, one prior technology of comparing addresses is found in Japanese Patent No. 3575632, entitled “Computer System and Operation Method for the Same,” which relates to pipelined processors, particularly counterflow pipelined processors.
Current typical computer systems are based on an information processing regime (a processor-based architecture) centered literally on the CPU (central processing unit), which has all-purpose information-processing functions.
However, even these CPU's capabilities of all information processing exhibit poor performances when finding a particular piece of information among vast data due to various negative effects generated by the information processing. The present invention has been devised in consideration of this technical background as well.
In information processing, search processing for a desired piece of information among vast data is performed quite frequently, and often users of an information processing device is unaware of the processing running in their devices; for accurate understanding of this search processing, it is essential to correctly understand two steps or concepts in information processing: “information search” and “information detection,” which are separately defined in the present invention.
Although these two concepts are not strictly distinguished when it is generally used, the “information search” means an action to look for and retrieve a desired piece of information from some information, whereas the “information detection” means an action to identify a desired piece of information among the retrieved information (including adding meaning to and recognizing the information).
On rare occasions, a desired piece of information may be directly identified without the action to look for it, but in most cases, information is searched by processing that integrates different aspects of the “information search” and the “information detection.”
The above information processing may be easily understood with a metaphor of sales activities, wherein the search and detection are compared to visits with many customers (search) and orders received as a result (detection), respectively, and wherein the performance of the sales activities and the information processing largely depend on the visiting activities and the search processing, respectively; while most of the customer visits may be unfruitful, they must be done to receive orders, and likewise, the information detection may not be performed without first conducting the information search
As a first example of the above, when a user searches for a desired piece of information from vast information on the Internet, the user provides an information search website with information (typically a vocabulary) as a search key, and an enormous information search engine of the information search website searches through an extensive information summaries (words or sentences) that were collected and accumulated from the Internet by information crawling, and selects and displays/outputs relevant websites, and then users identify and use desired websites from the displayed/output websites; in other words, only the “information search” is automated.
As a second example of the above, when the “information search” is performed for a desired piece of information from, for example, a database in a memory or a hard disk, typically a CPU performs a sequential search for each address, and then executes processing to identify the desired information according to the sequential search results, and finally the desired information is found as the “information detection.”
If a CPU with a machine clock of 1 GHz class searches through a memory with 1 GB address space, several seconds are required for simply scanning all addresses of the memory in order to find a desired piece of information, and an additional small fraction of time is needed for identifying (detecting) the desired information among the data found by the scanning.
Therefore, in order to achieve the fast information search detection, the search time is reduced generally by algorithm improvement and parallel processing of the CPU.
In this case, the algorithm improvement refers to an effort to reduce the search time, for example, by limiting the address range which is searched based on characteristics of information array in a storage medium of the memory and characteristics of information being searched; or by improving an information array by limiting the search address range to addresses with a certain condition.
Facial or smile recognition by a digital camera and speech recognition are common examples of the algorithm improvement, and each of these techniques has been developed with labor-intensive efforts by expert engineers over an extended period of time, wherein the accuracy of information detection and the processing time largely depend on a quality of the algorithm, and also pieces of information to be detected is limited to ones which can be detected according to its usage purpose or within a predetermined processing time.
After the algorithm improvement, the search time may be further reduced by dividing the addresses into a plurality of groups and searching them with a plurality of CPU's, respectively, wherein the search time may be reduced generally in proportion to the number of the CPU's.
For example, some of the above-mentioned enormous information search engine of the information search website use tens of thousands of personal computers to reduce the search time, and many supercomputers perform parallel processing using multitudes of CPU's, resulting in larger and more expensive devices.
As explained above, in order to automatically find a desired piece of information among some information, the following two kinds of information processing are essential: the “information search” action to look for and retrieve some information to be searched (sequential processing for each address when performed by a CPU), and the “information detection” action to identify the desired information among the information sequentially processed and retrieved (including the concepts of adding meaning to and recognizing the information).
Analogous to the above metaphor of sales activities and visits with customers, in many cases, most of the searched and retrieved information is irrelevant and truly desired information is extremely limited, rendering the action of information search a heavy burden in the information processing.
This is due to the fact that the CPU is essentially of von-Neumann-processor-based architecture and destined to sequentially search for data address-by-address in the memory, in other words, perform the “information search.”
Therefore, what has been long needed in the information processing industry is to provide an information processing system (e.g., memory-based architecture) capable of essentially eliminating the sequential information search, which is inevitable for the von Neumann information processing.
There have been many researches initiated as national projects to address weaknesses (bottlenecks) of processor-based architectures and to develop a memory-based architecture (an information processing system in which the memory plays the main role) such as a neurocomputer as artificial intelligence which imitates a human brain as a memory, but it has been difficult to create general-purpose products and to mass-produce them.
One of the means for realizing this information processing system is disclosed in Japanese Patent Application No. 2010-65597, entitled “Memory Provided with Information Refinement Detection Function,” filed by the present applicant and inventor.
Since a memory-based architecture encompasses a wide variety of forms such as the neurocomputer, one of the simplest examples will be described below to facilitate the understanding of the memory provided with the information refinement detection function of the above application, and the memory-based architecture of the present application.
In the following, the memory provided with the information refinement detection function is or may be simply described as an information detection memory.
Here, we attempt to detect some pattern information in weather data of past 100 years in a particular geographical region, wherein each data address chronologically corresponds with each day during the 100 years, and stores the highest air temperature of the respective day. As an example, we consider information search and detection for any day with the highest temperature of 5° C., AND with a particular temperature pattern, wherein the highest temperature on the day before and the day after were 10° C. and 15° C., respectively (although any combination of the day and the temperature, and any number of days may be considered).
The number of addresses for the above temperature pattern data is 365 days*100 years=36 k (36,000), and if the temperature in this geographical region ranges from 0° C. to 36° C., it may be assumed that there are about 10 days/year for each one-centigrade range, in other words, there are about 1 k (1,000) days for each of 5° C., 10° C. and 15° C. temperatures.
As the above-described algorithm improvement, only March through May and October through December may be searched in order to limit the search address ranges as much as possible considering that the temperatures 5° C., 10° C. and 15° C. are not common in January, February and June through September, but these months may also include the temperature pattern due to some abnormal weathers.
Accordingly, there are other reliable ways to search for three consecutive days with the temperatures 5° C., 10° C. and 15° C. in the above order, without relying on any algorithms:
(1) Store the weather data in a typical memory, sequentially search for 5° C. days through the memory using a CPU and compare the temperatures of the days before and after each day found by the search: the number of information processing steps is 36 k (the number of addresses)+α.(2) Store the weather data in a content-addressable memory, provide the memory with 5° C. as comparison data, sequentially output 5° C. days from the memory and compare the days before and after each of the 5° C. days using a CPU: the number of information processing steps is 1 k (the number of 5° C.-day addresses)+β.(3) Store the weather data in a information detection memory, provide this memory with both of the temperatures and the relative days (addresses) as comparison data three times and output the 5° C. days from the memory: the number of information processing steps is 3 (comparison processing)+(output processing).
The above (3) utilizing the information detection memory describes the concept of memory-based information processing, which requires no information search and is capable of reducing the number of information processing steps to about oneten-thousandth to thereby allow drastic improvement of the information processing speed.
Although the above is an example of pattern detection of weather data using a memory-based architecture, the number of information processing steps in searching for, for example, identical images or similar images among image data is also typically several times to several tens at most; therefore the memory-based architecture enables various information processing tasks that are impossible with typical processor-based architectures.
It is possible in particular to store program information as data so that a CPU may search though the data to process operations, or to perform information detection on a large database with a integrated information processing using both a CPU (i.e., processor-based information processing) and the memory-based information processing according to the present invention, as discussed in detail below.
As prior art examples of the memory-based information processing, JP-A-2003-036269, entitled “Information Processing Device, Information Processing Method and Memory for Storing a Information Processing Program” proposes an example of a memory-based search engine, and JP-A-2001-229172, entitled “Data Processing Device and Processing System Using Tables” proposes an example of a memory-based data processing device using tables, but neither of these is based on the concepts of the present invention.
Based on the background art described above, the concept to utilize the relationship itself of the data address array as a device for detecting information and the concept itself to actively utilize the relationship of the address array are very unique, and there is no prior technology found based on these concepts.
The objective of the present invention is to ensure or improve information detection accuracy, minimize the number of data comparison steps, and provide an information detection memory of non-von Neumann architecture and a method of using the memory which enable information detection by the memory itself, wherein the information subject to the detection includes information addressed or addressable in one- or multi-dimensional arrays, and wherein the detection is performed with, for example, pattern recognition or knowledge processing by determining sameness or similarity between information subject to the detection (e.g., unknown information) and reference information (e.g., known information) based on conditions of respective relationships among a plurality of data items and among a plurality of addresses of the unknown information and the known information.
Another objective of the present invention is to provide a method of and a circuit for comparing addresses capable of efficient and fast detection of pattern information outside of a memory; and a memory and its device and artificial intelligence capable of parallel comparison of data.
Yet another objective of the present invention is to establish a novel information processing system of memory-based architecture capable of essentially eliminating the concept of information search in information processing; and provide a new-generation information processing system for taking advantage of the processor-based architecture such as a CPU and seamlessly combining the processor-based architecture and the memory-based architecture.